package com.yejign.quartzdemo;

import org.quartz.JobExecutionContext;
import org.quartz.Trigger;
import org.quartz.TriggerListener;

public class MyTriggerListener implements TriggerListener {
    //用于获取触发器的名称	
    public String getName() {//获取默认类名
        return this.getClass().getSimpleName();
    }

    //当与监听器相关联的trigger被触发，job上的execute()方法将被执行时，Scheduler就调用该方法
    public void triggerFired(Trigger trigger, JobExecutionContext context) {
        System.out.println("triggerFired");
    }
    //在Trigger触发后，job将要被执行时由Scheduler调用这个方法。
    //TriggerListener给一个选择去否决job的执行。如方法返回true，job此次将不会为trigger触发执行。false，放行。
    public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) {
        System.out.println("vetoJobExecution");
        return false;
    }
    //Scheduler 调用这个方法是在trigger错过时触发。
    public void triggerMisfired(Trigger trigger) {
        System.out.println("triggerMisfired");
    }
    //triggerComplete：trigger被触发并且完成了job的执行时，Scheduler调用这个方法。
    public void triggerComplete(Trigger trigger, JobExecutionContext context,
            Trigger.CompletedExecutionInstruction triggerInstructionCode) {
        System.out.println("triggerComplete");
    }

}

